// Copyright (c) 2011 The Kiwii Authors. All rights reserved.
// Use of this source code is governed by the New BSD License that can be
// found in the LICENSE file. See the AUTHORS file for names of contributors.

#ifndef KIWI_EXCEPTION_INCLUDED
#define KIWI_EXCEPTION_INCLUDED

#include <string>
#include <exception>
#include <boost/exception/all.hpp>

namespace kiwii {
  namespace comm {
    class Exception : public virtual std::exception, public virtual boost::exception {
    public:
      Exception(std::string const& msg) : msg_(msg) {}
      virtual ~Exception() throw() {}

      virtual char const* what() const throw() {
	return msg_.c_str();
      }

    protected:
      std::string msg_;
    };
  }
}

#endif
